var category_name = '';
$(function(){
	
	getApiCategoryInfo();
	
	//动态生成div点击事件
	$("#id_api_category").on('click','.api-nav',function(){
		$(this).addClass("selected").siblings().removeClass("selected");
		category_name = $(this).attr("data-name");
		query(1,category_name);
	});
	
	$('#pageNum').dropdown();
	
	//默认查询第一页
	query(1,category_name);
	
	$('#dropdown').on('shown.bs.dropdown', function () {
	     $('.dropdown-menu li').click(function () {
	         var str = $(this).children('a').html();
	         var size = $(this).children('a').children('label').text();
	         str += '<span class="caret"></span>';
	         $("#pageNum").html(str);
	         query(1,category_id);
	     })
	 });
});

function jumpQuery(){
	var page = $("#jump_page").val();
	var reg = /^\+?[1-9][0-9]*$/;//判断是否为正整数 
    var flag = reg.test(trim(page));
    if(!flag){
    	layer.alert("请输入正整数！", {
			icon : 3,
			offset: '100px'
		});
    }else{
    	var totalPages = $("#total_pages").text();
    	if(parseInt(page) > parseInt(totalPages)){
    		layer.alert("跳转页数不能超过总页数！", {
    			icon : 3,
    			offset: '100px'
    		});
    	}else{
    		query(page,category_name);
    	}
    }
}

function query(page,category_name){
	layer.load(4);
	$.ajax({
		type : "post",
		url :  "api/getApiList",
		data : {
			"currentPage" : page,
			"category_name" : category_name,
			"pageSize" : $("#pageNum").children('strong').text()
		},
		dataType : "json",
		success : function(data) {
			layer.closeAll();
			if (data.flag) {
				var datas = data.datas;
				var url = data.url;
				var is_public = data.is_public;
				apiList(datas,url);
				if(is_public){
					$("#public_api_span").css("display","none");
				}else{
					$("#public_api_span").css("display","");
				}
				var currentPage = data.currentPage;
				var totalPages = data.totalPages;
				var totalData = data.totalData;
				$("#total_data").text(totalData);
				$("#total_pages").text(totalPages);
				var options = {
					currentPage : currentPage, // 当前的请求页面。
					totalPages : totalPages, // 一共多少页。
					size : "normal", // 应该是页眉的大小。
					bootstrapMajorVersion : 3, // bootstrap的版本要求。
					alignment : "right",
					numberOfPages : 5, // 一页显示几个按钮
					itemTexts : function(type, page, current) { // 如下的代码是将页眉显示的中文显示我们自定义的中文。
						switch (type) {
						case "first":
							return "首页";
						case "prev":
							return "上一页";
						case "next":
							return "下一页";
						case "last":
							return "末页";
						case "page":
							return page;
						}
					},
					tooltipTitles : function(type, page, current) { // 提示框，当鼠标放上去给提示
						switch (type) {
						case "first":
							return "首页";
						case "prev":
							return "上一页";
						case "next":
							return "下一页";
						case "last":
							return "末页";
						}
					},
					onPageClicked : function(event, originalEvent, type, page) {
						layer.load(4);
						$.ajax({
							type : "post",
							url :  "api/getApiList",
							data : {
								"currentPage" : page,
								"category_name" : category_name,
								"pageSize" : $("#pageNum").children('strong').text()
							},
							dataType : "json",
							success : function(data) {
								if (data.flag) {
									layer.closeAll();
									var datas = data.datas;
									var url = data.url;
									var is_public = data.is_public;
									apiList(datas,url);
									if(is_public){
										$("#public_api_span").css("display","none");
									}else{
										$("#public_api_span").css("display","");
									}
								}
							},
							error : function(data) {
								layer.closeAll();
							}
						});
					}
				}
				$('#pageLimit').bootstrapPaginator(options);
			}
		},
		error : function(data) {
			layer.closeAll();
		}
	});
}

function apiList(datas,url){
	$("#id_api_list_ul").empty();
	var str = "";
	//var url = "http://202.103.111.28:7001/mcService/getApi/data";
	for(var i = 0 ; i < datas.length; i++){
		var service_name = datas[i]['service_name'];
		//bug base64解析最后一个参数会出现多余的空格啥的,解决办法：最后一个参数随便传入名称，不做处理
		var parameter = Base64.encode("url="+url+"&service_id="+datas[i]['service_id']+"&service_name="+service_name+"&v=1");
		var href = "./api_info.html?parameter="+parameter;
		str += '<li class="api-list-li">'+
					'<div class="api-info  click-report-log">'+
						'<a target="_blank" rel="noopener noreferrer" href="'+href+'" title="'+service_name+'">'+
							'<img width="80" height="80" style="position: relative; top: -8px;" src="./images/a43.png">'+
							'<h2 class="api-name">'+service_name+'</h2>'+
						'</a>'+
						/*'<div class="api-price">￥0.0301/次</div>'+*/
					'</div>'+
					'<a class="api-get-btn click-report-log" href="'+href+'">申请数据</a>'+
				'</li>';
	}
	$("#id_api_list_ul").append(str);
}

function getApiCategoryInfo(){
	$.ajax({
		type : "post",
		url :  "api/getApiCategoryInfo",
		dataType : "json",
		success : function(data) {
			if (data.flag) {
				var datas = data.datas;
				$("#id_api_category").empty();
				var str = '<p>API分类</p><div class="api-nav selected">全部</div>';
				for(var i = 0 ; i < datas.length; i++){
					str += '<div class="api-nav" data-name='+datas[i]['category_name']+'>'+datas[i]['category_name']+'</div>'
				}
				$("#id_api_category").append(str);
			}
		}
	});
}

function public_api() {
	$("#public_api").empty();
	
	$.ajax({
		type : "post",
		url :  "api/apiServicePublic",
		async:false, 
		dataType : "json",
		success : function(data) {
			if (data.flag) {
				var url = data.url;
				var str = '<div class="">'+
							    '<form id="service-form">'+
							    ' 	<div class="form-group">'+
							    '      	<label class="control-label" style="padding-top:10px;padding-left:10px;">分享链接：</label>'+
							    '       <div><input class="form-control input-sm" id="api_url" type="text" readonly="" placeholder="分享链接" value="'+url+'"></div>'+
							    '     <div class="form-auto-btn" style="padding-top:15px;text-align:center">'+
							    '     	<a id="clip_button" href="javascript:copy()" class="btn btn-default">URL复制</a>'+ 
							    '     	<a href="javascript:layer.closeAll();" class="btn btn-default">关闭</a>'+
							    '     </div>'+
							   '</form>'+
						  '</div>';
				layer.open({
					type : 1,// 类型为2，解析URL
					closeBtn : 1, // 关闭按钮是否显示 1显示0不显示
					area : [ '450px', '200px' ],
					fix : false, // 不固定
					maxmin : false,
					title : "发布",
					shadeClose : true,
					content : $("#public_api").append(str)
				});
				
			}
		}
	});
}

function copy(){
	var url= document.getElementById("api_url").value;
    var oInput = document.createElement('input');
    oInput.value = url;
    document.body.appendChild(oInput);
    oInput.select(); // 选择对象
    document.execCommand("Copy"); // 执行浏览器复制命令
    oInput.className = 'oInput';
    oInput.style.display='none';
    alert('复制成功');
}

function trim(str){ 
    return str.replace(/(^\s*)|(\s*$)/g, ""); 
}